package com.gl.order.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gl.order.entity.TRole;
import com.gl.order.entity.dto.RoleDto;
import com.gl.order.entity.dto.RolePageDto;
import com.gl.order.entity.dto.UpdateRoleDto;
import com.gl.order.entity.vo.RoleVo;

import java.util.List;

public interface RoleService extends IService<TRole> {

    /**
     * 新增角色
     * @param dto
     */
    void add(RoleDto dto);

    /**
     * 添加角色权限关系
     * @param roleId 角色id
     * @param permissionsIds 权限id
     */
    void addRolePermission(String roleId, List<String> permissionsIds);

    /**
     * 添加角色权限关系
     * @param roleId 角色id
     * @param menuIds 菜单id
     */
    void addRoleMenu(String roleId, List<String> menuIds);

    /**
     * 删除角色
     * @param id
     */
    void delRole(String id);

    void delRoles(List<String> ids);


    /**
     * 获取所有角色
     * @return
     */
    List<TRole> list();

    /**
     *  根据角色id获取指定对应信息
     */
    TRole findById(String id);

    /**
     *  根据角色名称或角色编码查询角色
     * @param name 角色名称
     * @param code 角色编码
     * @return
     */
    TRole findByNmaeOrCode(String name,String code);

    /**
     * 更新权限
     * @param dto
     */
    void updateRole(UpdateRoleDto dto);

    IPage<RoleVo> pageOfRole(RolePageDto dto);

}
